package com.ruoyi.common.mongo.dao;

import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.mongo.domain.po.MongoBasePO;
import com.ruoyi.common.mongo.domain.qo.MongoBaseQO;

import java.util.List;

public interface MongoBasicDao<P extends MongoBasePO, Q extends MongoBaseQO> {

    TableDataInfo pageQuery(Q q);

    P selectById(Object id);

    P selectExistsById(Object id);

    int deleteById(Object id);

    int logicDeleteById(P p);

    List<P> select(Q q);

    int insert(P p);

    int batchInsert(List<P> ps);

    int update(Q q);

    int updateSelective(Q q);


    int batchUpdate(List<Q> ps);

    int batchUpdateSelective(List<Q> ps);

    int delete(Q q);
}
